Node.js MySQL Insert Into

Node.js ஐப் பயன்படுத்தி MySQL அட்டவணைகளில் தரவைச் செருக கற்றுக்கொள்ளுங்கள்

அட்டவணையில் செருகுதல்

MySQL இல் ஒரு அட்டவணையை நிரப்ப, "INSERT INTO" அறிக்கையைப் பயன்படுத்தவும்.

எடுத்துக்காட்டு

"customers" அட்டவணையில் ஒரு பதிவைச் செருகவும்:

let mysql = require('mysql');

let con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  let sql = "INSERT INTO customers (name, address) VALUES ('Company Inc', 'Highway 37')";
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("1 record inserted");
  });
});

மேலே உள்ள குறியீட்டை "demo_db_insert.js" என்ற கோப்பில் சேமித்து கோப்பை இயக்கவும்:

C:\Users\Your Name>node demo_db_insert.js

இது உங்களுக்கு இந்த முடிவைக் கொடுக்கும்:

Connected!
1 record inserted

💡 முக்கிய குறிப்புகள்:

  • நெடுவரிசை வரிசை: VALUES இல் உள்ள மதிப்புகள் நெடுவரிசைகளின் வரிசையுடன் பொருந்த வேண்டும்
  • தரவு வகைகள்: செருகப்படும் மதிப்புகள் நெடுவரிசை தரவு வகைகளுடன் பொருந்த வேண்டும்
  • சரம் மதிப்புகள்: சரம் மதிப்புகள் ஒற்றை மேற்கோள்களில் இருக்க வேண்டும்

பல பதிவுகளைச் செருகுதல்

ஒன்றுக்கு மேற்பட்ட பதிவுகளைச் செருக, மதிப்புகளைக் கொண்ட ஒரு வரிசையை உருவாக்கி, sql இல் ஒரு கேள்விக்குறியைச் செருகவும், இது மதிப்பு வரிசையால் மாற்றப்படும்:

INSERT INTO customers (name, address) VALUES ?

எடுத்துக்காட்டு

"customers" அட்டவணையை தரவுகளால் நிரப்பவும்:

let mysql = require('mysql');

let con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  let sql = "INSERT INTO customers (name, address) VALUES ?";
  let values = [
    ['John', 'Highway 71'],
    ['Peter', 'Lowstreet 4'],
    ['Amy', 'Apple st 652'],
    ['Hannah', 'Mountain 21'],
    ['Michael', 'Valley 345'],
    ['Sandy', 'Ocean blvd 2'],
    ['Betty', 'Green Grass 1'],
    ['Richard', 'Sky st 331'],
    ['Susan', 'One way 98'],
    ['Vicky', 'Yellow Garden 2'],
    ['Ben', 'Park Lane 38'],
    ['William', 'Central st 954'],
    ['Chuck', 'Main Road 989'],
    ['Viola', 'Sideway 1633']
  ];
  con.query(sql, [values], function (err, result) {
    if (err) throw err;
    console.log("Number of records inserted: " + result.affectedRows);
  });
});

மேலே உள்ள குறியீட்டை "demo_db_insert_multiple.js" என்ற கோப்பில் சேமித்து கோப்பை இயக்கவும்:

C:\Users\Your Name>node demo_db_insert_multiple.js

இது உங்களுக்கு இந்த முடிவைக் கொடுக்கும்:

Connected!
Number of records inserted: 14

முடிவு பொருள்

ஒரு வினாவை இயக்கும் போது, ஒரு முடிவு பொருள் திருப்பி அனுப்பப்படும்.

முடிவு பொருள் வினா அட்டவணையை எவ்வாறு பாதித்தது என்பதைப் பற்றிய தகவல்களைக் கொண்டுள்ளது.

மேலே உள்ள எடுத்துக்காட்டிலிருந்து திருப்பி அனுப்பப்பட்ட முடிவு பொருள் இப்படித் தெரிகிறது:

{
  fieldCount: 0,
  affectedRows: 14,
  insertId: 0,
  serverStatus: 2,
  warningCount: 0,
  message: '\'Records:14  Duplicated: 0  Warnings: 0',
  protocol41: true,
  changedRows: 0
}

பண்புகளின் மதிப்புகளை இப்படி காட்டலாம்:

எடுத்துக்காட்டு

பாதிக்கப்பட்ட வரிசைகளின் எண்ணிக்கையைத் திருப்பி அனுப்பவும்:

console.log(result.affectedRows)

இது இந்த முடிவை உருவாக்கும்:

14
பண்பு விளக்கம்
affectedRows செருகப்பட்ட, புதுப்பிக்கப்பட்ட அல்லது நீக்கப்பட்ட வரிசைகளின் எண்ணிக்கை
insertId AUTO_INCREMENT நெடுவரிசைக்கு செருகப்பட்ட ID
changedRows UPDATE அறிக்கையால் மாற்றப்பட்ட வரிசைகளின் எண்ணிக்கை
warningCount வினாவால் உருவாக்கப்பட்ட எச்சரிக்கைகளின் எண்ணிக்கை

செருகப்பட்ட ID ஐப் பெறுதல்

தானாக அதிகரிக்கும் id புலம் உள்ள அட்டவணைகளுக்கு, முடிவு பொருளைக் கேட்பதன் மூலம் நீங்கள் இப்போது செருகிய வரிசையின் id ஐப் பெறலாம்.

⚠️ குறிப்பு:

செருகப்பட்ட id ஐப் பெற முடியும் வகையில், ஒரே ஒரு வரிசை மட்டுமே செருகப்பட வேண்டும்.

எடுத்துக்காட்டு

"customers" அட்டவணையில் ஒரு பதிவைச் செருகி, ID ஐத் திருப்பி அனுப்பவும்:

let mysql = require('mysql');

let con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  let sql = "INSERT INTO customers (name, address) VALUES ('Michelle', 'Blue Village 1')";
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("1 record inserted, ID: " + result.insertId);
  });
});

மேலே உள்ள குறியீட்டை "demo_db_insert_id.js" என்ற கோப்பில் சேமித்து கோப்பை இயக்கவும்:

C:\Users\Your Name>node demo_db_insert_id.js

இது உங்களுக்கு இதைப் போன்ற ஒன்றைத் திருப்பித் தரும்:

1 record inserted, ID: 15

மேம்பட்ட செருகும் நுட்பங்கள்

மாறிகள் மூலம் செருகுதல்

மாறிகளைப் பயன்படுத்தி மதிப்புகளைச் செருகவும்:

const name = "John Doe";
const address = "123 Main Street";
const sql = "INSERT INTO customers (name, address) VALUES (?, ?)";
con.query(sql, [name, address], function (err, result) {
  if (err) throw err;
  console.log("Record inserted with ID: " + result.insertId);
});

பிழை கையாளுதலுடன் செருகுதல்

சரியான பிழை கையாளுதலுடன் செருகவும்:

con.query("INSERT INTO customers (name, address) VALUES (?, ?)", 
  ["John", "123 Street"], 
  function (err, result) {
    if (err) {
      console.error("Error inserting record:", err.message);
      return;
    }
    console.log("Record inserted successfully. ID:", result.insertId);
  }
);

ஒரே நேரத்தில் பல செருகுதல்கள்

ஒரே நேரத்தில் பல்வேறு அட்டவணைகளில் செருகவும்:

// Insert into multiple tables
const customerSQL = "INSERT INTO customers (name, email) VALUES (?, ?)";
const orderSQL = "INSERT INTO orders (customer_id, amount) VALUES (?, ?)";

con.query(customerSQL, ["John", "john@example.com"], function (err, result) {
  if (err) throw err;
  const customerId = result.insertId;
  
  // Now insert into orders table
  con.query(orderSQL, [customerId, 100.50], function (err, result) {
    if (err) throw err;
    console.log("Customer and order created successfully");
  });
});

செருகுதலுக்கான சிறந்த நடைமுறைகள்

பாதுகாப்பு

  • SQL injection தடுக்க கேள்விக்குறி இடம் கொண்டவைகளைப் பயன்படுத்தவும்
  • பயனர் உள்ளீட்டை எப்போதும் சரிபார்க்கவும்
  • தரவு சுத்திகரிப்பு செயல்பாடுகளைப் பயன்படுத்தவும்
  • பிழை செய்திகளை வெளிப்படையாகக் காட்ட வேண்டாம்

செயல்திறன்

  • பெரிய செருகுதல்களுக்கு பல வரிசை செருகலைப் பயன்படுத்தவும்
  • தேவையற்ற செருகுதல்களைத் தவிர்க்கவும்
  • அடிக்கடி செருகுதல்களுக்கு இணைப்புக் குளத்தைப் பயன்படுத்தவும்
  • பெரிய தரவு செட்களுக்கு தொகுதி செருகலைப் பயன்படுத்தவும்

தரவு ஒருமைப்பாடு

  • தரவுத்தள கட்டுப்பாடுகளை மதிக்கவும்
  • மாறாத தரவைச் செருகுவதை உறுதிப்படுத்தவும்
  • வெளிநாட்டு விசை உறவுகளைப் பராமரிக்கவும்
  • தனித்துவமான கட்டுப்பாடுகளைச் சரிபார்க்கவும்

முழுமையான எடுத்துக்காட்டு

அனைத்து செருகும் நுட்பங்களையும் உள்ளடக்கிய முழுமையான எடுத்துக்காட்டு:

const mysql = require('mysql');

// Create connection
const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "password",
  database: "company_db"
});

// Connect to MySQL
con.connect((err) => {
  if (err) {
    console.error('Error connecting to MySQL:', err.message);
    return;
  }
  
  console.log('Connected to MySQL database');
  
  // Single record insertion
  const singleRecordSQL = "INSERT INTO employees (first_name, last_name, email, salary) VALUES (?, ?, ?, ?)";
  const singleValues = ["John", "Doe", "john.doe@company.com", 50000.00];
  
  con.query(singleRecordSQL, singleValues, (err, result) => {
    if (err) {
      console.error('Error inserting single record:', err.message);
      con.end();
      return;
    }
    
    console.log(`Single record inserted with ID: ${result.insertId}`);
    
    // Multiple records insertion
    const multipleRecordsSQL = "INSERT INTO employees (first_name, last_name, email, salary) VALUES ?";
    const multipleValues = [
      ["Jane", "Smith", "jane.smith@company.com", 55000.00],
      ["Bob", "Johnson", "bob.johnson@company.com", 60000.00],
      ["Alice", "Brown", "alice.brown@company.com", 52000.00]
    ];
    
    con.query(multipleRecordsSQL, [multipleValues], (err, result) => {
      if (err) {
        console.error('Error inserting multiple records:', err.message);
        con.end();
        return;
      }
      
      console.log(`Multiple records inserted. Affected rows: ${result.affectedRows}`);
      
      // Show all employees
      con.query("SELECT * FROM employees", (err, results) => {
        if (err) {
          console.error('Error fetching employees:', err.message);
          con.end();
          return;
        }
        
        console.log('\nAll employees:');
        results.forEach(employee => {
          console.log(`ID: ${employee.id}, Name: ${employee.first_name} ${employee.last_name}, Email: ${employee.email}, Salary: ${employee.salary}`);
        });
        
        // Close connection
        con.end((err) => {
          if (err) {
            console.error('Error closing connection:', err.message);
            return;
          }
          console.log('\nConnection closed');
        });
      });
    });
  });
});

பயிற்சி

சரியான பண்பு பெயரை தேர்வு செய்யவும்.

முடிவு பொருளின் ______ பண்பு ஒரு வினாவால் எத்தனை வரிசைகள் பாதிக்கப்பட்டன என்பதைக் காட்டுகிறது.

changedRows
✗ தவறு! "changedRows" பண்பு UPDATE அறிக்கைகளால் மாற்றப்பட்ட வரிசைகளைக் காட்டுகிறது, செருகப்பட்ட வரிசைகளை அல்ல
insertedRows
✗ தவறு! "insertedRows" என்பது Node.js mysql தொகுதியில் ஒரு செல்லுபடியாகும் பண்பு அல்ல
affectedRows
✓ சரி! "affectedRows" பண்பு ஒரு வினாவால் செருகப்பட்ட, புதுப்பிக்கப்பட்ட அல்லது நீக்கப்பட்ட வரிசைகளின் மொத்த எண்ணிக்கையைக் காட்டுகிறது. INSERT அறிக்கைகளுக்கு, இது வெற்றிகரமாக செருகப்பட்ட வரிசைகளின் எண்ணிக்கையைக் குறிக்கிறது
rowCount
✗ தவறு! "rowCount" என்பது Node.js mysql தொகுதியில் ஒரு செல்லுபடியாகும் பண்பு அல்ல